home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1997 July
/
EnigmA AMIGA RUN 20 (1997)(G.R. Edizioni)(IT)[!][issue 1997-07 & 08][EAR-CD IV].iso
/
earkit
/
kaffe
/
kaffe-0_9_0-gcalign-diff.gz
/
kaffe-0.9.0-gcalign-diff
Wrap
Text File
|
1997-06-05
|
3KB
|
97 lines
diff -bcrN gcbug_kaffe-0.9.0/config/config.h.in kaffe-0.9.0/config/config.h.in
*** gcbug_kaffe-0.9.0/config/config.h.in Mon May 12 19:16:38 1997
--- kaffe-0.9.0/config/config.h.in Sat May 24 19:04:14 1997
***************
*** 259,264 ****
--- 259,267 ----
/* How big are pointers */
#undef SIZEOF_VOIDP
+ /* How are pointers aligned */
+ #undef ALIGNMENTOF_VOIDP
+
/* Do we have sigcontext */
#undef HAVE_STRUCT_SIGCONTEXT
diff -bcrN gcbug_kaffe-0.9.0/configure.in kaffe-0.9.0/configure.in
*** gcbug_kaffe-0.9.0/configure.in Mon May 12 19:16:23 1997
--- kaffe-0.9.0/configure.in Sun Jun 01 15:22:16 1997
***************
*** 617,622 ****
--- 617,641 ----
AC_CHECK_SIZEOF(long long,0)
AC_CHECK_SIZEOF(__int64,0)
AC_CHECK_SIZEOF(void*,0)
+
+ dnl =========================================================================
+ dnl Checks for alignments
+ dnl -------------------------------------------------------------------------
+
+ AC_CACHE_CHECK(alignment of void*, ac_cv_alignmentof_voidp,
+ AC_TRY_RUN([#include <stdio.h>
+ main() { struct { char c; void *p; } t; FILE *f;
+ if ((char*) &t.c != (char*) &t) exit (1);
+ f=fopen ("conftestdata", "w");
+ if (! f) exit (1);
+ fprintf (f, "%d", ((char*) &t.p)-((char*) &t));
+ fclose(f); exit (0); }],
+ ac_cv_alignmentof_voidp=$(<conftestdata), ac_cv_alignmentof_voidp=1,
+ ac_cv_alignmentof_voidp=1))
+ AC_DEFINE_UNQUOTED(ALIGNMENTOF_VOIDP,$ac_cv_alignmentof_voidp)
+
+ dnl -------------------------------------------------------------------------
+
AC_TYPE_SIGNAL
AC_TYPE_SIZE_T
AC_CHECK_TYPE(ssize_t,int)
diff -bcrN gcbug_kaffe-0.9.0/kaffe/kaffevm/gc-incremental.c kaffe-0.9.0/kaffe/kaffevm/gc-incremental.c
*** gcbug_kaffe-0.9.0/kaffe/kaffevm/gc-incremental.c Tue May 27 00:04:39 1997
--- kaffe-0.9.0/kaffe/kaffevm/gc-incremental.c Mon May 26 20:31:58 1997
***************
*** 13,18 ****
--- 13,19 ----
#define FDBG(s)
#define FTDBG(s)
#define ADBG(s)
+ #define ALDBG(s)
#include "config.h"
#include "config-std.h"
***************
*** 152,167 ****
}
void
! scanConservative(void* base, size_t size)
{
! void** mem;
! int32 i;
gcStats.markedmem += size;
! mem = base;
! for (i = (size / sizeof(void*)) - 1; i >= 0; i--) {
! markObject(mem[i]);
}
}
--- 153,170 ----
}
void
! scanConservative(void *base, size_t size)
{
! int8 *mem;
gcStats.markedmem += size;
! mem = ((int8 *) base) + (size & -ALIGNMENTOF_VOIDP) - sizeof (void *);
! while ((void *) mem >= base) {
! ALDBG( if (gc_heap_isobject (* (void **) mem) && ((long)mem & (sizeof(void*)-1)))
! fprintf (stderr, "<%d>", (long)mem & (sizeof(void*)-1)); )
! markObject(* (void **) mem);
! mem -= ALIGNMENTOF_VOIDP;
}
}